#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include "biblioteca.h"

int main(){
    char c;
    int tipoToken = 0;
    contBegins = 0;
    indTabela = 0;

	entrada = fopen ("entrada.txt","r");
	if (!entrada){
		printf ("Erro na abertura do arquivo.");
		return 0;
	}
	
	saida = fopen("saida.txt", "w");
	if(!saida) {
		printf("Erro na abertura do arquivo de saída.");
		return 0;
	}
    
    buffer.ind_buffer = 0;
    buffer.ind_arq = 0;
    buffer.fim_arquivo = 0;
    encherBuffer();
    
    char str[50];
    
    tipoToken = nexttoken();     //obtem proximo token
    if (!checkprogram()){    //verifica existencia da palavra program
		printf(" Erro: PROGRAM não declarado !!");
		return 0;
    }
    
    
    tipoToken = nexttoken();
    printf("VAR %s \n", tokenAtual);
    if (strcmp(tokenAtual, "VAR") == 0){
        if (checkdeclaracao() == 0){
            printf("Erro. Declaracao de varivaveis invalida. \n");
            return 0;
        }
    
    }
    printf("BEGIN %s \n", tokenAtual);
    if (strcmp(tokenAtual, "BEGIN") != 0){
        printf("Erro. O token BEGIN era esperado para inciar o bloco principal mas nao foi encontrado. \n");
        return 0;
    }
    
    //bloco principal inciado com sucesso
    //Comandos
    tipoToken = nexttoken();
    while (comando() != 2){
        tipoToken = nexttoken();
    }

    
    fclose(entrada);fclose(saida);
    
    printf("Compilacao finalizada sem erros! \n");
    return 0;
}
